apache的order、allow、deny

        这个东西确实挺容易让人迷糊。其实也不难,只要掌握这样一条规律即可:

        首先举个例子:

1
2
3
Order deny,allow
deny from all
allow from 127.0.0.1

        判断的依据是这样的:

  1. 看Order后面的,哪个在前,哪个在后
  2. 如果deny在前,那么就需要看deny from 这句,然后看allow from 这一句
  3. 规则是一条一条的匹配的,不管是deny在前还是allow在前,都是会生效的。比如例子中,先deny 了所有,然后又allow了127.0.0.1,所以127.0.0.1是通过的。

        不妨再多举几个例子:

1
2
3
Order allow,deny
deny from all
allow from 127.0.0.1

        这个就会deny所有了,127.0.0.1也会被deny。因为顺序是先allow然后deny,虽然一开始allow了127.0.0.1,但是后面又拒绝了它。

1
2
Order allow,deny
deny from all

        全部都不能通行

1
2
Order deny,allow
deny from all

        全部都不能通行

1
Order deny,allow

        全部都可以通行(默认的),记住即可

1
Order allow,deny

        全部都不能通行(默认的),记住即可